home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / macros / latex209 / contrib / biblist / biblist.bst-dist / itibst.diff < prev   
Text File  |  1992-01-14  |  28KB  |  1,131 lines

  1. *** 1.1    1991/10/15 10:34:27
  2. --- itibst.doc    1992/01/13 14:00:36
  3. ***************
  4. *** 1,54 ****
  5. ! % BibTeX `plain' family
  6. !         % version 0.99b for BibTeX versions 0.99a or later, LaTeX version 2.09.
  7. !         % Copyright (C) 1985, all rights reserved.
  8. !         % Copying of this file is authorized only if either
  9. !         % (1) you make absolutely no changes to your copy, including name, or
  10. !         % (2) if you do make changes, you name it something other than
  11. !         % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst.
  12. !         % This restriction helps ensure that all standard styles are identical.
  13. !         % The file btxbst.doc has the documentation for this style.
  14. ! % Please notify Oren Patashnik (PATASHNIK@SCORE.STANFORD.EDU) of any bugs in
  15. ! % these standard styles or in this documentation file.
  16.   %
  17. ! % This is file btxbxt.doc; it helps document bibliography styles,
  18.   % and is also a template file that you can use to make
  19.   % several different style files, if you have access to a C preprocessor.
  20. ! % For example, the standard styles were made by doing something like
  21. ! %       cpp -P -DPLAIN btxbst.doc plain.txt
  22. ! %       cpp -P -DUNSRT btxbst.doc unsrt.txt
  23. ! %       cpp -P -DALPHA btxbst.doc alpha.txt
  24. ! %       cpp -P -DABBRV btxbst.doc abbrv.txt
  25. ! % and then renaming after removing unwanted comments and blank lines.
  26. ! % If you don't have access,
  27. ! % you can edit this file by hand to imitate the preprocessor,
  28. ! % with the following explanation of the C preprocessor constructs used here.
  29. ! %
  30. ! % The output of the preprocessor is the same as the input, except that certain
  31. ! % lines will be excluded (and some blank lines will be added).  The sequence
  32. ! %       #if VAR
  33. ! %           lines to be included when VAR is not zero
  34. ! %       #else
  35. ! %           lines to be included when VAR is zero
  36. ! %       #endif
  37. ! % (with the #-signs appearing in column 1) means that one set or the other of
  38. ! % the lines are to be included depending on the value of VAR.
  39. ! % The #else part is optional.  Comments can be added after #else and #endif.
  40. ! % Variables can be set by
  41. ! %       #define VAR value
  42. ! % and one can also use #ifdef VAR to see if VAR has any value, and #ifndef
  43. ! % to see if it has none.
  44. ! % Another #if form used in this file is #if !VAR, which includes the lines
  45. ! % after the #if only if VAR is zero.
  46. ! %
  47. ! % Convention: Use all uppercase identifiers for these preprocessor variables
  48. ! % so you can spot them easily
  49. ! %
  50. ! % The command line to the preprocessor should define one of PLAIN, UNSRT, ALPHA
  51. ! % or ABBRV (though PLAIN will be used by default if none is given),
  52. ! % and the following lines will set various boolean variables to control the
  53. ! % various lines that are chosen from the rest of the file.
  54. ! % Each boolean variable should be set true (1) or false (0) in each style.
  55. ! % Here are the current variables, and their meanings:
  56.   %       LAB_ALPH:       an alphabetic label is used (if false then a numeric
  57.   %                           label is used)
  58.   %       SORTED:         the entries should be sorted by label (if nonnumeric)
  59. --- 1,71 ----
  60. ! %% $Id: itibst.doc,v 1.3 1992/01/13 13:59:34 schrod Exp schrod $
  61. ! %%----------------------------------------------------------------------
  62. ! %% BibTeX `THD/ITI' family of bibliography styles
  63. ! %% The file itibst.doc has the documentation for this style.
  64. ! %% Please notify Joachim Schrod (schrod@iti.informatik.th-darmstadt.de) of
  65. ! %% any bugs in these styles or in this documentation file.
  66. ! %%
  67. ! %% CAVEAT: This is experimental software in an alpha-test version.
  68. ! %%       The documentation is not complete, installation instructions
  69. ! %%       are missing (or perhaps not updated), etc. Please send
  70. ! %%       bug reports (and, of course, repairs) to me, but do not expect
  71. ! %%       that I will react very soon. I will collect the stuff and will
  72. ! %%       incorporate it at a later date.
  73. ! %%
  74. ! %
  75. ! % $Log: itibst.doc,v $
  76. ! % Revision 1.3  1992/01/13  13:59:34  schrod
  77. ! % In biblist style titles will not be lowered. The user should see
  78. ! % what's in the database.
  79. ! %
  80. ! % The Id tag is now propagated to the styles. One must see from which
  81. ! % version they were created.
  82. ! %
  83. ! % Replaced function format.annote with output.annote. The former
  84. ! % concatenated the annote field which yielded an overflow of the
  85. ! % global-string-size (at max. 1000).
  86. ! %    Well, I learned now that fields which might be very large (ie,
  87. ! % more than 1000 chars) must not be used with operations like "*", only
  88. ! % with functions like empty$, write$, etc. Of course, these arbitrary
  89. ! % limits are not documented...
  90. ! %    (This error was pointed out by Joseph Gil <yogi@cs.ubc.ca>.)
  91. ! %
  92. ! % Revision 1.2  1991/10/15  10:35:32  schrod
  93. ! % added support for GERMAN, ISBN, ANNOTATE, and LIBRARY.
  94. ! % added REFERENCE.
  95. ! % added styles ALPH_ABBRV and BIBLIST.
  96. ! % defined ATIT_LOWER conditionally.
  97.   %
  98. ! % checked in for alpha distribution.
  99. ! %
  100. ! %
  101. ! % This is file itibst.doc; it helps document bibliography styles,
  102.   % and is also a template file that you can use to make
  103.   % several different style files, if you have access to a C preprocessor.
  104. ! %
  105. ! % identifiers:
  106. ! %
  107. ! %    UNSRT        bst unsrt: numbers, unsorted, unabbreviated
  108. ! %    ALPHA        bst alpha: short alphabetics, sorted, unabbreviated
  109. ! %    ABBRV        bst abbrv: numbers, sorted, abbreviated
  110. ! %    ALPH_ABBRV    bst alph-abbrv: short alphabetics, sorted, abbreviated
  111. ! %    PLAIN        bst plain: numbers, sorted, unabbreviated
  112. ! %   (all 5 by default with lowered titles)
  113. ! %
  114. ! %    BIBLIST        bst biblist: for listings of bib files,
  115. ! %            cite keys, unsorted, unabbreviated, not lowered
  116. ! %            (defines REFERENCE and sets ATIT_LOWER to 0)
  117. ! %
  118. ! %    GERMAN        not-lowered titles
  119. ! %                       german texts (not complete!!!)
  120. ! %    REFERENCE    sets ISBN, ANNOTATE, LIBRARY
  121. ! %
  122. ! %    ISBN        adds support for ISBN and ISSN
  123. ! %    ANNOTATE    adds support for annotations
  124. ! %    LIBRARY        adds support for library info
  125. ! %
  126. ! %
  127. ! % in fact, the following identifiers are used internally:
  128.   %       LAB_ALPH:       an alphabetic label is used (if false then a numeric
  129.   %                           label is used)
  130.   %       SORTED:         the entries should be sorted by label (if nonnumeric)
  131. ***************
  132. *** 57,114 ****
  133.   %       NAME_FULL:      the authors, editors, etc., get the full names as
  134.   %                           given in the bibliography file (if false, the first
  135.   %                           names become initials)
  136. - %       ATIT_LOWER:     titles of non-"books" (e.g., articles) should be
  137. - %                           converted to lower-case, except the first letter or
  138. - %                           first letter after a colon
  139. - %                           (if false then they appear as in the database)
  140.   %       MONTH_FULL:     months are spelled out in full (if false, then
  141.   %                           they're abbreviated)
  142.   %       JOUR_FULL:      macro journal names are spelled out in full
  143.   %                           (if false then they are abbreviated, currently
  144.   %                           as they appear in ACM publications)
  145. ! #ifndef UNSRT
  146. ! #   ifndef ALPHA
  147. ! #       ifndef ABBRV
  148. ! #           define PLAIN 1
  149. ! #       endif
  150. ! #   endif
  151. ! #endif
  152. ! #ifdef PLAIN
  153. ! % plain style (sorted numbers)
  154. ! #   define LAB_ALPH 0
  155. ! #   define SORTED 1
  156. ! #   define NAME_FULL 1
  157. ! #   define ATIT_LOWER 1
  158. ! #   define MONTH_FULL 1
  159. ! #   define JOUR_FULL 1
  160.   #endif
  161.   #ifdef UNSRT
  162. ! % unsrt style (unsorted numbers)
  163.   #   define LAB_ALPH 0
  164.   #   define SORTED 0
  165.   #   define NAME_FULL 1
  166. ! #   define ATIT_LOWER 1
  167.   #   define MONTH_FULL 1
  168.   #   define JOUR_FULL 1
  169.   #endif
  170.   #ifdef ALPHA
  171. ! % alpha style (sorted short alphabetics)
  172.   #   define LAB_ALPH 1
  173.   #   define SORTED 1
  174. ! #   define NAME_FULL 1
  175.   #   define ATIT_LOWER 1
  176.   #   define MONTH_FULL 1
  177.   #   define JOUR_FULL 1
  178.   #endif
  179.   #ifdef ABBRV
  180. ! % abbrv style (sorted numbers, with abbreviations)
  181.   #   define LAB_ALPH 0
  182.   #   define SORTED 1
  183.   #   define NAME_FULL 0
  184.   #   define ATIT_LOWER 1
  185.   #   define MONTH_FULL 0
  186.   #   define JOUR_FULL 0
  187.   #endif
  188.   %
  189.   %   Entry formatting: Similar to that recommended by Mary-Claire van Leunen
  190.   %       in "A Handbook for Scholars".  Book-like titles are italicized
  191. --- 74,185 ----
  192.   %       NAME_FULL:      the authors, editors, etc., get the full names as
  193.   %                           given in the bibliography file (if false, the first
  194.   %                           names become initials)
  195.   %       MONTH_FULL:     months are spelled out in full (if false, then
  196.   %                           they're abbreviated)
  197.   %       JOUR_FULL:      macro journal names are spelled out in full
  198.   %                           (if false then they are abbreviated, currently
  199.   %                           as they appear in ACM publications)
  200. ! %
  201. ! % this might be set on request:
  202. ! %       ATIT_LOWER:     titles of non-"books" (e.g., articles) should be
  203. ! %                           converted to lower-case, except the first letter or
  204. ! %                           first letter after a colon
  205. ! %                           (if false then they appear as in the database)
  206. ! %
  207. ! % PLAIN is default!
  208. ! %
  209. ! %
  210. ! % creation:
  211. ! %
  212. ! %    /lib/cpp -P [ defines ] itibst.doc |
  213. ! %        perl -n -e 's/^%$//; s/^%[^%].*//; print unless $_ eq "\n";' \
  214. ! %            >style.bst
  215. ! %
  216. ! #ifdef GERMAN
  217. ! %% german texts
  218. ! #   define ATIT_LOWER 0
  219.   #endif
  220.   #ifdef UNSRT
  221. ! %% unsrt style (unsorted numbers)
  222.   #   define LAB_ALPH 0
  223.   #   define SORTED 0
  224.   #   define NAME_FULL 1
  225. ! #   ifndef ATIT_LOWER
  226. ! #       define ATIT_LOWER 1
  227. ! #   endif
  228.   #   define MONTH_FULL 1
  229.   #   define JOUR_FULL 1
  230.   #endif
  231.   #ifdef ALPHA
  232. ! %% alpha style (sorted short alphabetics)
  233.   #   define LAB_ALPH 1
  234.   #   define SORTED 1
  235. ! #   define NAME_FULL 0
  236. ! #ifndef ATIT_LOWER
  237.   #   define ATIT_LOWER 1
  238. + #endif
  239.   #   define MONTH_FULL 1
  240.   #   define JOUR_FULL 1
  241.   #endif
  242.   #ifdef ABBRV
  243. ! %% abbrv style (sorted numbers, with abbreviations)
  244.   #   define LAB_ALPH 0
  245.   #   define SORTED 1
  246.   #   define NAME_FULL 0
  247. + #ifndef ATIT_LOWER
  248. + #   define ATIT_LOWER 1
  249. + #endif
  250. + #   define MONTH_FULL 0
  251. + #   define JOUR_FULL 0
  252. + #endif
  253. + #ifdef ALPH_ABBRV
  254. + %% alph-abbrv style (sorted short alphabetics, with abbreviations)
  255. + #   define LAB_ALPH 1
  256. + #   define SORTED 1
  257. + #   define NAME_FULL 0
  258. + #ifndef ATIT_LOWER
  259.   #   define ATIT_LOWER 1
  260. + #endif
  261.   #   define MONTH_FULL 0
  262.   #   define JOUR_FULL 0
  263.   #endif
  264. + #ifdef BIBLIST
  265. + %% biblist style (unsorted, for listings of bib files)
  266. + #   define LAB_ALPH 0
  267. + #   define SORTED 0
  268. + #   define NAME_FULL 1
  269. + #ifndef ATIT_LOWER
  270. + #   define ATIT_LOWER 0
  271. + #endif
  272. + #   define MONTH_FULL 1
  273. + #   define JOUR_FULL 1
  274. + #   define REFERENCE
  275. + #endif
  276. + #ifndef SORTED                  /* use PLAIN */
  277. + %% plain style (sorted numbers)
  278. + #   define LAB_ALPH 0
  279. + #   define SORTED 1
  280. + #   define NAME_FULL 1
  281. + #   ifndef ATIT_LOWER
  282. + #       define ATIT_LOWER 1
  283. + #   endif
  284. + #   define MONTH_FULL 1
  285. + #   define JOUR_FULL 1
  286. + #endif
  287. + #ifdef REFERENCE
  288. + #   define ISBN 1
  289. + #   define ANNOTATE 1
  290. + #   define LIBRARY 1
  291. + #endif
  292. + #ifndef ISBN
  293. + #   define ISBN 0
  294. + #endif
  295. + #ifndef ANNOTATE
  296. + #   define ANNOTATE 0
  297. + #endif
  298. + #ifndef LIBRARY
  299. + #   define LIBRARY 0
  300. + #endif
  301.   %
  302.   %   Entry formatting: Similar to that recommended by Mary-Claire van Leunen
  303.   %       in "A Handbook for Scholars".  Book-like titles are italicized
  304. ***************
  305. *** 199,206 ****
  306.   %           however, it's the address of the conference; for those two entry
  307.   %           types, include the publisher's or organization's address, if
  308.   %           necessary, in the publisher or organization field.
  309. ! %    annote
  310.   %           Long annotation---for annotated bibliographies (begins sentence).
  311.       author
  312.   %           Name(s) of author(s), in BibTeX name format.
  313.       booktitle
  314. --- 270,279 ----
  315.   %           however, it's the address of the conference; for those two entry
  316.   %           types, include the publisher's or organization's address, if
  317.   %           necessary, in the publisher or organization field.
  318. ! #if ANNOTATE
  319. !     annote
  320.   %           Long annotation---for annotated bibliographies (begins sentence).
  321. + #endif
  322.       author
  323.   %           Name(s) of author(s), in BibTeX name format.
  324.       booktitle
  325. ***************
  326. *** 218,228 ****
  327. --- 291,311 ----
  328.   %            How something strange has been published (begins sentence).
  329.       institution
  330.   %           Sponsoring institution of a technical report.
  331. + #if ISBN
  332. +     isbn
  333. + %           ISBN of book
  334. +     issn
  335. + %           ISSN of periodical
  336. + #endif
  337.       journal
  338.   %           Journal name (macros are provided for many).
  339.       key
  340.   %           Alphabetizing, labeling, and cross-referencing key
  341.   %           (needed when an entry has no author or editor).
  342. + #if LIBRARY
  343. +     library
  344. + %           Library signature
  345. + #endif
  346.       month
  347.   %           Month (macros are provided).
  348.       note
  349. ***************
  350. *** 380,385 ****
  351. --- 463,491 ----
  352.   %       output.state := before.all
  353.   %  END
  354.   %
  355. + #if ANNOTATE
  356. + % The output.annote function writes the annotation for the current
  357. + % entry. It must not use the concatenation operator since an
  358. + % annotation may be rather long and BibTeX has an arbitrary limit
  359. + % (1000) on the length of strings.
  360. + % 
  361. + % In fact, this function is defined later, since it needs new.block
  362. + % which is not defined yet.
  363. + % 
  364. + % output.annote ==
  365. + %   BEGIN
  366. + %     if not empty$(annote) then
  367. + %           new.block
  368. + %           prepare for output of "\annote "
  369. + %           newline$
  370. + %           write$("\annote ")
  371. + %           write$(annote)
  372. + %           newline$
  373. + %           push "\endannote" on stack        % for fin.entry
  374. + %       fi
  375. + %   END
  376. + %
  377. + #endif
  378.   % The fin.entry function finishes off an entry by adding a period to the
  379.   % string remaining on the stack.  If the state is still before.all
  380.   % then nothing was produced for this entry, so the result will look bad,
  381. ***************
  382. *** 503,508 ****
  383. --- 609,629 ----
  384.     if$
  385.   }
  386.   
  387. + #if ANNOTATE
  388. + FUNCTION {output.annote}
  389. + {
  390. +   annote empty$
  391. +     {  }
  392. +     {
  393. +       new.block  "\annote " output
  394. +       newline$  write$
  395. +       annote write$  newline$
  396. +       "\endannote"
  397. +     }
  398. +   if$
  399. + }
  400. + #endif
  401.   % These three functions pop one or two (integer) arguments from the stack
  402.   % and push a single one, either 0 or 1.
  403.   % The 'skip$ in the `and' and `or' functions are used because
  404. ***************
  405. *** 591,597 ****
  406.   % emphasize(s) ==
  407.   %  BEGIN
  408.   %       if empty$(s) then return ""
  409. ! %       else return "{\em " * s * "}"
  410.   %
  411.   % The format.names function formats the argument (which should be in
  412.   % BibTeX name format) into "First Von Last, Junior", separated by commas
  413. --- 712,718 ----
  414.   % emphasize(s) ==
  415.   %  BEGIN
  416.   %       if empty$(s) then return ""
  417. ! %       else return "{\it " * s * "}"
  418.   %
  419.   % The format.names function formats the argument (which should be in
  420.   % BibTeX name format) into "First Von Last, Junior", separated by commas
  421. ***************
  422. *** 615,626 ****
  423. --- 736,755 ----
  424.   %           t := format.name$(s, nameptr, "{f.~}{vv~}{ll}{, jj}")
  425.   %           if nameptr > 1 then
  426.   %               if namesleft > 1 then nameresult := nameresult * ", " * t
  427. + #ifndef GERMAN
  428.   %               else if numnames > 2
  429.   %                      then nameresult := nameresult * ","
  430.   %                    fi
  431.   %                    if t = "others"
  432. + #else /* GERMAN */
  433. + %               else if t = "others"
  434. + #endif /* GERMAN */
  435.   %                      then nameresult := nameresult * " et~al."
  436. + #ifndef GERMAN
  437.   %                      else nameresult := nameresult * " and " * t
  438. + #else /* GERMAN */
  439. + %                      else nameresult := nameresult * " und " * t
  440. + #endif /* GERMAN */
  441.   %                    fi
  442.   %               fi
  443.   %           else nameresult := t
  444. ***************
  445. *** 672,678 ****
  446.   FUNCTION {emphasize}
  447.   { duplicate$ empty$
  448.       { pop$ "" }
  449. !     { "{\em " swap$ * "}" * }
  450.     if$
  451.   }
  452.   
  453. --- 801,807 ----
  454.   FUNCTION {emphasize}
  455.   { duplicate$ empty$
  456.       { pop$ "" }
  457. !     { "{\it " swap$ * "}" * }
  458.     if$
  459.   }
  460.   
  461. ***************
  462. *** 692,704 ****
  463. --- 821,841 ----
  464.         nameptr #1 >
  465.           { namesleft #1 >
  466.               { ", " * t * }
  467. + #ifndef GERMAN
  468.               { numnames #2 >
  469.                   { "," * }
  470.                   'skip$
  471.                 if$
  472.                 t "others" =
  473. + #else /* GERMAN */
  474. +             { t "others" =
  475. + #endif /* GERMAN */
  476.                   { " et~al." * }
  477. + #ifndef GERMAN
  478.                   { " and " * t * }
  479. + #else /* GERMAN */
  480. +                 { " und " * t * }
  481. + #endif /* GERMAN */
  482.                 if$
  483.               }
  484.             if$
  485. ***************
  486. *** 730,735 ****
  487. --- 867,898 ----
  488.     if$
  489.   }
  490.   
  491. + #if ISBN
  492. + FUNCTION {format.isbn}
  493. + { isbn empty$
  494. +     { "" }
  495. +     { new.sentence "ISBN~" isbn * }
  496. +   if$
  497. + }
  498. + FUNCTION {format.issn}
  499. + { issn empty$
  500. +     { "" }
  501. +     { new.sentence "ISSN~" issn * }
  502. +   if$
  503. + }
  504. + #endif
  505. + #if LIBRARY
  506. + FUNCTION {format.library}
  507. + { library empty$
  508. +     { "" }
  509. +     { "\library{" library * "}" * }
  510. +   if$
  511. + }
  512. + #endif
  513.   % The format.title function is used for non-book-like titles.
  514.   % For most styles we convert to lowercase (except for the very first letter,
  515.   % and except for the first one after a colon (followed by whitespace)),
  516. ***************
  517. *** 992,999 ****
  518. --- 1155,1167 ----
  519.   { pages empty$
  520.       { "" }
  521.       { pages multi.page.check
  522. + #ifndef GERMAN
  523.           { "pages" pages n.dashify tie.or.space.connect }
  524.           { "page" pages tie.or.space.connect }
  525. + #else /* GERMAN */
  526. +         { "Seiten" pages n.dashify tie.or.space.connect }
  527. +         { "Seite" pages tie.or.space.connect }
  528. + #endif /* GERMAN */
  529.         if$
  530.       }
  531.     if$
  532. ***************
  533. *** 1151,1157 ****
  534.             warning$
  535.             ""
  536.           }
  537. !         { "In {\em " journal * "\/}" * }
  538.         if$
  539.       }
  540.       { "In " key * }
  541. --- 1319,1325 ----
  542.             warning$
  543.             ""
  544.           }
  545. !         { "In {\it " journal * "\/}" * }
  546.         if$
  547.       }
  548.       { "In " key * }
  549. ***************
  550. *** 1172,1178 ****
  551. --- 1340,1350 ----
  552.           'skip$
  553.           { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
  554.               { " et~al." * }
  555. + #ifndef GERMAN
  556.               { " and " * editor #2 "{vv~}{ll}" format.name$ * }
  557. + #else
  558. +             { " und " * editor #2 "{vv~}{ll}" format.name$ * }
  559. + #endif
  560.             if$
  561.           }
  562.         if$
  563. ***************
  564. *** 1204,1210 ****
  565.                 crossref * warning$
  566.                 "" *
  567.               }
  568. !             { "{\em " * series * "\/}" * }
  569.             if$
  570.           }
  571.           { key * }
  572. --- 1376,1382 ----
  573.                 crossref * warning$
  574.                 "" *
  575.               }
  576. !             { "{\it " * series * "\/}" * }
  577.             if$
  578.           }
  579.           { key * }
  580. ***************
  581. *** 1231,1237 ****
  582.                 crossref * warning$
  583.                 ""
  584.               }
  585. !             { "In {\em " booktitle * "\/}" * }
  586.             if$
  587.           }
  588.           { "In " key * }
  589. --- 1403,1409 ----
  590.                 crossref * warning$
  591.                 ""
  592.               }
  593. !             { "In {\it " booktitle * "\/}" * }
  594.             if$
  595.           }
  596.           { "In " key * }
  597. ***************
  598. *** 1313,1318 ****
  599. --- 1485,1494 ----
  600.   
  601.   FUNCTION {article}
  602.   { output.bibitem
  603. + #if LIBRARY
  604. +   format.library output
  605. +   new.sentence
  606. + #endif
  607.     format.authors "author" output.check
  608.     new.block
  609.     format.title "title" output.check
  610. ***************
  611. *** 1326,1338 ****
  612. --- 1502,1524 ----
  613.         format.pages output
  614.       }
  615.     if$
  616. + #if ISBN
  617. +   format.issn output
  618. + #endif
  619.     new.block
  620.     note output
  621. + #if ANNOTATE
  622. +   output.annote
  623. + #endif
  624.     fin.entry
  625.   }
  626.   
  627.   FUNCTION {book}
  628.   { output.bibitem
  629. + #if LIBRARY
  630. +   format.library output
  631. +   new.sentence
  632. + #endif
  633.     author empty$
  634.       { format.editors "author and editor" output.check }
  635.       { format.authors output.nonnull
  636. ***************
  637. *** 1358,1365 ****
  638. --- 1544,1557 ----
  639.     if$
  640.     format.edition output
  641.     format.date "year" output.check
  642. + #if ISBN
  643. +   format.isbn output
  644. + #endif
  645.     new.block
  646.     note output
  647. + #if ANNOTATE
  648. +   output.annote
  649. + #endif
  650.     fin.entry
  651.   }
  652.   
  653. ***************
  654. *** 1369,1374 ****
  655. --- 1561,1570 ----
  656.   
  657.   FUNCTION {booklet}
  658.   { output.bibitem
  659. + #if LIBRARY
  660. +   format.library output
  661. +   new.sentence
  662. + #endif
  663.     format.authors output
  664.     new.block
  665.     format.title "title" output.check
  666. ***************
  667. *** 1378,1383 ****
  668. --- 1574,1582 ----
  669.     format.date output
  670.     new.block
  671.     note output
  672. + #if ANNOTATE
  673. +   output.annote
  674. + #endif
  675.     fin.entry
  676.   }
  677.   
  678. ***************
  679. *** 1391,1396 ****
  680. --- 1590,1599 ----
  681.   
  682.   FUNCTION {inbook}
  683.   { output.bibitem
  684. + #if LIBRARY
  685. +   format.library output
  686. +   new.sentence
  687. + #endif
  688.     author empty$
  689.       { format.editors "author and editor" output.check }
  690.       { format.authors output.nonnull
  691. ***************
  692. *** 1418,1425 ****
  693. --- 1621,1634 ----
  694.     if$
  695.     format.edition output
  696.     format.date "year" output.check
  697. + #if ISBN
  698. +   format.isbn output
  699. + #endif
  700.     new.block
  701.     note output
  702. + #if ANNOTATE
  703. +   output.annote
  704. + #endif
  705.     fin.entry
  706.   }
  707.   
  708. ***************
  709. *** 1432,1437 ****
  710. --- 1641,1650 ----
  711.   
  712.   FUNCTION {incollection}
  713.   { output.bibitem
  714. + #if LIBRARY
  715. +   format.library output
  716. +   new.sentence
  717. + #endif
  718.     format.authors "author" output.check
  719.     new.block
  720.     format.title "title" output.check
  721. ***************
  722. *** 1451,1458 ****
  723. --- 1664,1677 ----
  724.         format.chapter.pages output
  725.       }
  726.     if$
  727. + #if ISBN
  728. +   format.isbn output
  729. + #endif
  730.     new.block
  731.     note output
  732. + #if ANNOTATE
  733. +   output.annote
  734. + #endif
  735.     fin.entry
  736.   }
  737.   
  738. ***************
  739. *** 1465,1470 ****
  740. --- 1684,1693 ----
  741.   
  742.   FUNCTION {inproceedings}
  743.   { output.bibitem
  744. + #if LIBRARY
  745. +   format.library output
  746. +   new.sentence
  747. + #endif
  748.     format.authors "author" output.check
  749.     new.block
  750.     format.title "title" output.check
  751. ***************
  752. *** 1492,1499 ****
  753. --- 1715,1729 ----
  754.         format.pages output
  755.       }
  756.     if$
  757. + #if ISBN
  758. +   format.isbn output
  759. +   format.issn output
  760. + #endif
  761.     new.block
  762.     note output
  763. + #if ANNOTATE
  764. +   output.annote
  765. + #endif
  766.     fin.entry
  767.   }
  768.   
  769. ***************
  770. *** 1507,1512 ****
  771. --- 1737,1746 ----
  772.   
  773.   FUNCTION {manual}
  774.   { output.bibitem
  775. + #if LIBRARY
  776. +   format.library output
  777. +   new.sentence
  778. + #endif
  779.     author empty$
  780.       { organization empty$
  781.           'skip$
  782. ***************
  783. *** 1536,1541 ****
  784. --- 1770,1778 ----
  785.     format.date output
  786.     new.block
  787.     note output
  788. + #if ANNOTATE
  789. +   output.annote
  790. + #endif
  791.     fin.entry
  792.   }
  793.   
  794. ***************
  795. *** 1545,1550 ****
  796. --- 1782,1791 ----
  797.   
  798.   FUNCTION {mastersthesis}
  799.   { output.bibitem
  800. + #if LIBRARY
  801. +   format.library output
  802. +   new.sentence
  803. + #endif
  804.     format.authors "author" output.check
  805.     new.block
  806.     format.title "title" output.check
  807. ***************
  808. *** 1555,1560 ****
  809. --- 1796,1804 ----
  810.     format.date "year" output.check
  811.     new.block
  812.     note output
  813. + #if ANNOTATE
  814. +   output.annote
  815. + #endif
  816.     fin.entry
  817.   }
  818.   
  819. ***************
  820. *** 1564,1569 ****
  821. --- 1808,1817 ----
  822.   
  823.   FUNCTION {misc}
  824.   { output.bibitem
  825. + #if LIBRARY
  826. +   format.library output
  827. +   new.sentence
  828. + #endif
  829.     format.authors output
  830.     title howpublished new.block.checkb
  831.     format.title output
  832. ***************
  833. *** 1570,1577 ****
  834. --- 1818,1831 ----
  835.     howpublished new.block.checka
  836.     howpublished output
  837.     format.date output
  838. + #if ISBN
  839. +   format.issn output
  840. + #endif
  841.     new.block
  842.     note output
  843. + #if ANNOTATE
  844. +   output.annote
  845. + #endif
  846.     fin.entry
  847.     empty.misc.check
  848.   }
  849. ***************
  850. *** 1582,1587 ****
  851. --- 1836,1845 ----
  852.   
  853.   FUNCTION {phdthesis}
  854.   { output.bibitem
  855. + #if LIBRARY
  856. +   format.library output
  857. +   new.sentence
  858. + #endif
  859.     format.authors "author" output.check
  860.     new.block
  861.     format.btitle "title" output.check
  862. ***************
  863. *** 1592,1597 ****
  864. --- 1850,1858 ----
  865.     format.date "year" output.check
  866.     new.block
  867.     note output
  868. + #if ANNOTATE
  869. +   output.annote
  870. + #endif
  871.     fin.entry
  872.   }
  873.   
  874. ***************
  875. *** 1605,1610 ****
  876. --- 1866,1875 ----
  877.   
  878.   FUNCTION {proceedings}
  879.   { output.bibitem
  880. + #if LIBRARY
  881. +   format.library output
  882. +   new.sentence
  883. + #endif
  884.     editor empty$
  885.       { organization output }
  886.       { format.editors output.nonnull }
  887. ***************
  888. *** 1633,1640 ****
  889. --- 1898,1912 ----
  890.         publisher output
  891.       }
  892.     if$
  893. + #if ISBN
  894. +   format.isbn output
  895. +   format.issn output
  896. + #endif
  897.     new.block
  898.     note output
  899. + #if ANNOTATE
  900. +   output.annote
  901. + #endif
  902.     fin.entry
  903.   }
  904.   
  905. ***************
  906. *** 1644,1649 ****
  907. --- 1916,1925 ----
  908.   
  909.   FUNCTION {techreport}
  910.   { output.bibitem
  911. + #if LIBRARY
  912. +   format.library output
  913. +   new.sentence
  914. + #endif
  915.     format.authors "author" output.check
  916.     new.block
  917.     format.title "title" output.check
  918. ***************
  919. *** 1654,1659 ****
  920. --- 1930,1938 ----
  921.     format.date "year" output.check
  922.     new.block
  923.     note output
  924. + #if ANNOTATE
  925. +   output.annote
  926. + #endif
  927.     fin.entry
  928.   }
  929.   
  930. ***************
  931. *** 1663,1668 ****
  932. --- 1942,1951 ----
  933.   
  934.   FUNCTION {unpublished}
  935.   { output.bibitem
  936. + #if LIBRARY
  937. +   format.library output
  938. +   new.sentence
  939. + #endif
  940.     format.authors "author" output.check
  941.     new.block
  942.     format.title "title" output.check
  943. ***************
  944. *** 1669,1674 ****
  945. --- 1952,1960 ----
  946.     new.block
  947.     note "note" output.check
  948.     format.date output
  949. + #if ANNOTATE
  950. +   output.annote
  951. + #endif
  952.     fin.entry
  953.   }
  954.   
  955. ***************
  956. *** 1683,1739 ****
  957.   
  958.   #if MONTH_FULL
  959.   
  960. - MACRO {jan} {"January"}
  961.   
  962. ! MACRO {feb} {"February"}
  963.   
  964.   MACRO {mar} {"March"}
  965.   MACRO {apr} {"April"}
  966.   MACRO {may} {"May"}
  967.   MACRO {jun} {"June"}
  968.   MACRO {jul} {"July"}
  969.   MACRO {aug} {"August"}
  970.   MACRO {sep} {"September"}
  971.   MACRO {oct} {"October"}
  972.   
  973.   MACRO {nov} {"November"}
  974.   
  975. ! MACRO {dec} {"December"}
  976.   
  977. - #else !MONTH_FULL
  978.   
  979. ! MACRO {jan} {"Jan."}
  980.   
  981. - MACRO {feb} {"Feb."}
  982.   
  983. ! MACRO {mar} {"Mar."}
  984.   
  985.   MACRO {apr} {"Apr."}
  986.   MACRO {may} {"May"}
  987.   MACRO {jun} {"June"}
  988.   MACRO {jul} {"July"}
  989.   MACRO {aug} {"Aug."}
  990.   MACRO {sep} {"Sept."}
  991.   MACRO {oct} {"Oct."}
  992.   
  993.   MACRO {nov} {"Nov."}
  994.   
  995. ! MACRO {dec} {"Dec."}
  996.   
  997. ! #endif MONTH_FULL
  998.   
  999.   % Journals are either written out in full or abbreviated;
  1000.   % the abbreviations are like those found in ACM publications.
  1001. --- 1969,2045 ----
  1002.   
  1003.   #if MONTH_FULL
  1004.   
  1005.   
  1006. ! #ifndef GERMAN
  1007.   
  1008. + MACRO {jan} {"January"}
  1009. + MACRO {feb} {"February"}
  1010.   MACRO {mar} {"March"}
  1011.   MACRO {apr} {"April"}
  1012.   MACRO {may} {"May"}
  1013.   MACRO {jun} {"June"}
  1014.   MACRO {jul} {"July"}
  1015.   MACRO {aug} {"August"}
  1016.   MACRO {sep} {"September"}
  1017.   MACRO {oct} {"October"}
  1018. + MACRO {nov} {"November"}
  1019. + MACRO {dec} {"December"}
  1020.   
  1021. + #else /* GERMAN */
  1022. + MACRO {jan} {"Januar"}
  1023. + MACRO {feb} {"Februar"}
  1024. + MACRO {mar} {"M{\accent 127 a}rz"}
  1025. + MACRO {apr} {"April"}
  1026. + MACRO {may} {"Mai"}
  1027. + MACRO {jun} {"Juni"}
  1028. + MACRO {jul} {"Juli"}
  1029. + MACRO {aug} {"August"}
  1030. + MACRO {sep} {"September"}
  1031. + MACRO {oct} {"Oktober"}
  1032.   MACRO {nov} {"November"}
  1033. + MACRO {dec} {"Dezember"}
  1034.   
  1035. ! #endif /* GERMAN */
  1036.   
  1037.   
  1038. ! #else /* !MONTH_FULL */
  1039.   
  1040.   
  1041. ! #ifndef GERMAN
  1042.   
  1043. + MACRO {jan} {"Jan."}
  1044. + MACRO {feb} {"Feb."}
  1045. + MACRO {mar} {"Mar."}
  1046.   MACRO {apr} {"Apr."}
  1047.   MACRO {may} {"May"}
  1048.   MACRO {jun} {"June"}
  1049.   MACRO {jul} {"July"}
  1050.   MACRO {aug} {"Aug."}
  1051.   MACRO {sep} {"Sept."}
  1052.   MACRO {oct} {"Oct."}
  1053. + MACRO {nov} {"Nov."}
  1054. + MACRO {dec} {"Dec."}
  1055. + #else /* GERMAN */
  1056.   
  1057. + MACRO {jan} {"Jan."}
  1058. + MACRO {feb} {"Feb."}
  1059. + MACRO {mar} {"M{\accent 127 a}rz"}
  1060. + MACRO {apr} {"April"}
  1061. + MACRO {may} {"Mai"}
  1062. + MACRO {jun} {"Juni"}
  1063. + MACRO {jul} {"Juli"}
  1064. + MACRO {aug} {"Aug."}
  1065. + MACRO {sep} {"Sept."}
  1066. + MACRO {oct} {"Okt."}
  1067.   MACRO {nov} {"Nov."}
  1068. + MACRO {dec} {"Dez."}
  1069.   
  1070. ! #endif /* GERMAN */
  1071.   
  1072. ! #endif /* MONTH_FULL */
  1073.   
  1074.   % Journals are either written out in full or abbreviated;
  1075.   % the abbreviations are like those found in ACM publications.
  1076. ***************
  1077. *** 1785,1791 ****
  1078.   
  1079.   MACRO {tcs} {"Theoretical Computer Science"}
  1080.   
  1081. ! #else !JOUR_FULL
  1082.   
  1083.   MACRO {acmcs} {"ACM Comput. Surv."}
  1084.   
  1085. --- 2091,2097 ----
  1086.   
  1087.   MACRO {tcs} {"Theoretical Computer Science"}
  1088.   
  1089. ! #else /* !JOUR_FULL */
  1090.   
  1091.   MACRO {acmcs} {"ACM Comput. Surv."}
  1092.   
  1093. ***************
  1094. *** 1828,1834 ****
  1095.   
  1096.   MACRO {tcs} {"Theoretical Comput. Sci."}
  1097.   
  1098. ! #endif JOUR_FULL
  1099.   
  1100.   % Now we read in the .BIB entries.
  1101.   
  1102. --- 2134,2140 ----
  1103.   
  1104.   MACRO {tcs} {"Theoretical Comput. Sci."}
  1105.   
  1106. ! #endif /* JOUR_FULL */
  1107.   
  1108.   % Now we read in the .BIB entries.
  1109.   
  1110.